Next: Comment Indentation, Previous: Code Indentation, Up: Code Formatting [Contents][Index]
Continuation lines (following a line ending with
$) can receive a fixed indentation offset from the
main level, but in several situations IDLWAVE can use a special
form of indentation which aligns continued statements more
naturally. Special indentation is calculated for continued
routine definition statements and calls, enclosing parentheses
(like function calls, structure/class definitions, explicit
structures or lists, etc.), and continued assignments. An attempt
is made to line up with the first non-whitespace character after
the relevant opening punctuation mark
(,,(,{,[,=).
For lines without any non-comment characters on the line with the
opening punctuation, the continued line(s) are aligned just past
the punctuation. An example:
function foo, a, b, $
c, d
bar = sin( a + b + $
c + d)
end
The only drawback to this special continued statement indentation is that it consumes more space, e.g., for long function names or left hand sides of an assignment:
function thisfunctionnameisverylongsoitwillleavelittleroom, a, b, $
c, d
You can instruct IDLWAVE when to avoid using this special
continuation indentation by setting the variable
idlwave-max-extra-continuation-indent, which
specifies the maximum additional indentation beyond the basic
indent to be tolerated, otherwise defaulting to a fixed-offset
from the enclosing indent (the size of which offset is set in
idlwave-continuation-indent). As a special case,
continuations of routine calls without any arguments or keywords
will not align the continued line, under the assumption
that you continued because you needed the space.
Also, since the indentation level can be somewhat dynamic in
continued statements with special continuation indentation,
especially if idlwave-max-extra-continuation-indent
is small, the key C-u TAB
will re-indent all lines in the current statement. Note that
idlwave-indent-to-open-paren, if
non-nil, overrides the
idlwave-max-extra-continuation-indent limit, for
parentheses only, forcing them always to line up.
2)Extra indentation applied to normal continuation lines.
20)The maximum additional indentation (over the basic
continuation-indent) that will be permitted for special
continues. To effectively disable special continuation
indentation, set to 0. To enable it constantly,
set to a large number (like 100). Note that the
indentation in a long continued statement never decreases
from line to line, outside of nested parentheses
statements.
t)Non-nil means indent continuation lines to
innermost open parenthesis, regardless of whether the
idlwave-max-extra-continuation-indent limit is
satisfied.
Next: Comment Indentation, Previous: Code Indentation, Up: Code Formatting [Contents][Index]